{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil\fcharset0 Calibri;}}
{\colortbl ;\red255\green0\blue0;}
{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\sa200\sl240\slmult1\lang9\strike\f0\fs22 1. Move command code into a player_commands.cpp file.\strike0\par
\strike 2. Move text (currently just for door interaction) into .txt datafiles.\par
3. Add checks to remove trees near the raft and stairs.\strike0\par
\cf1\strike 4. Make trees, stairs, etc. items instead of terrain (maybe?)\cf0\strike0\par
\strike 5. Add LOS code.\strike0\par
\cf1\strike 6. Use the LOS code to determine which wall tiles are shown (along with everything else, of course).  Then, this new information can be used to determine what the (visible) wall tiles should look like (their render_type).\cf0\par
7. Move constants, w and h variables, etc. out of the classes and into global places to save some memory.\par
8. Implement light items giving off light while in the dungeon.\par
9. Implement the player's inventory.  Allow the player to pick up the current light items. An inventory screen will be needed.\par
\cf1 10. Implement the equipment screen.\cf0\strike0\par
\strike 11. Allow the player to equip a light in the "light" slot.\strike0\par
\strike 12. Whatever item is equipped in the light slot should control the current actual player light in the game.  If no light item is equipped, no light should be given off.\strike0\par
\strike 13. Add the Item_Consumable class.  In the dungeon, they work like lights only without the giving of light, of course.  In the inventory, they can be consumed, and that's it.\strike0\par
\strike 14. Add some kind of Item_Special class.  This will hold money, batteries, fuel for the lantern, etc.  You will have a money "meter" or whatever somewhere, and it won't show up in your inventory.  Batteries and such will also be stored and shown somewhere else in the UI.\strike0\par
\strike 15. Randomize the player's starting facing direction.\strike0\par
\cf1\strike 16. Change the current way tiles are displayed.  I want a standard sprite-based tiles system, instead of the current bitmap font-based one.\cf0\strike0\par
\strike 17. Implement dropping items.\strike0\par
\cf1\strike 18. Implement dragging and moving items in the inventory.\cf0\strike0\par
\strike 19. Implement a tooptip that shows what the item is.\par
-Changing between fullscreen and windowed in either direction causes all graphics to be majorly screwy until you open the chat window.\par
-All save data should reside in a single file.\strike0\par
\strike -Clean up level gen/change.\strike0\par
\strike -Figure out light sources and their fuel.\strike0\par
\strike -Look into removing text_show_line.\strike0\par
\strike -Clean up message_log.\strike0\par
\strike -Look into globalizing current_level, last_level, and max_level.\strike0\par
\strike -Whenever waiting for a directional command's direction, escape should clear this.\strike0\par
\strike -Thoroughly check all variable initializations.\strike0\par
\strike -Add a wait command.\par
-Remove the .png's used for chat crap, and just use render_rectangle().\par
-When rendering, the game should look at each tile, and determine what to render there. Only one thing should be rendered per tile. Player, item, monster, tile itself, etc.\strike0\par
\strike -Search didn't seem to work from above.\par
-I need to split the melee and ranged weapon skills into weapon categories instead.\par
\cf1 -inventory_letters in Creature should be kept in alphabetical order. UPDATE: Nevermind, I think they should be left as they are.\par
\cf0 -Split base_damage into melee and range variants.\par
-Implement thrown items doing damage to creatures.\strike0\par
\cf1\strike -Probably change weight to be a double.\cf0\lang1033\strike0\par
\strike -Change what constitutes an item match.\par
\pard\sl240\slmult1\tx360\tx720\tx1080\tx1440\tx1800\tx2160\tx2520\tx2880\tx3240\tx3600\tx3960\tx4320\tx4680\tx5040\tx5400\tx5760\tx6120\tx6480\tx6840\tx7200\tx7560\tx7920\tx8280\tx8640\tx9000\tx9360\tx9720\tx10080\tx10440\tx10800\tx11160\tx11520 -Add one or more materials for food items.\strike0\par
\pard\sa200\sl240\slmult1\strike -Should it tell you the item's inventory letter when you pick one up?\par
-Implement the light source slot.\strike0\par
\strike -Make sure thrown and melee attacks cannot hit more than one target.\strike0\par
\strike -short movement_cause in Item might be unneeded.\strike0\par
\strike -Don't forget to clear the special owner data vectors for Items when the item stops moving.\par
-Fired items are in some kind of half-equipped limbo.\par
-Setup a starting inventory for the player.\par
-Implement thirst in creatures, and drinking stuff to quench thirst.\strike0\par
-\strike You should be able to throw, quaff, etc. items even if they are equipped, WHEN THEY HAVE MORE THAN 1 STACK.\par
-Implement fuel.\par
-Perhaps being overburdened should cause the creature to gain thirst faster.\strike0\par
\strike -Hardiness should improve thirst.\strike0\par
\strike -Remove light source slot.\par
-Implement carrying capacity.\strike0\par
\strike -Make templates loading function capable of reading multiple template files.\par
-Expand the item effect stuff. Item's should have a vector of effects, and whenever something checks the item's effect, it instead calls a function which returns whether or not the checked-for effect is one of the item's effects.\strike0\par
\strike -Merge item use and effects variables into one thing.\strike0\par
\strike -Improve mix message(s).\par
-I need to think over experience gain/leveling.\par
-Come up with my own names for encumbrances.\strike0\par
\strike -Figure out why monsters with lots of items KILLS the frame rate. UPDATE: I figured it out. return_inventory_weight() is being called by the monsters every turn, and it looks through the entire inventory. I think I will ignore this issue, for now at least.\par
\pard\sl360\slmult1\tx360\tx720\tx1080\tx1440\tx1800\tx2160\tx2520\tx2880\tx3240\tx3600\tx3960\tx4320\tx4680\tx5040\tx5400\tx5760\tx6120\tx6480\tx6840\tx7200\tx7560\tx7920\tx8280\tx8640\tx9000\tx9360\tx9720\tx10080\tx10440\tx10800\tx11160\tx11520 -Make levels smaller.\strike0\par
\pard\sa200\sl240\slmult1\strike -Look into long level gen times.\par
\cf1\lang9 -Add the kick command.\par
\cf0\lang1033 -Implement the level-up screen.\par
-Allow race to modify all of the skills.\strike0\par
\strike -Implement the focused skills selection window.\par
-Get the project all setup in Linux, too.\par
-When waiting for an inventory command's letter, the game should take '?' as an input to open an "interactive" version of the inventory window with just relevant items shown. '*' should open up the same window, but show everything.\par
-Add a healing potion.\par
-When you choose an item to throw, it takes a turn. Then it takes another to actually throw the item.  Oops!\par
-Make the item adding dev command take the item name as an argument instead.\par
-Add an examine item command, which opens an item info window.\par
-Add a simple score log.\par
-Add a death screen.\par
-Figure out how to handle ammo for ranged weapons.\par
-Change item weights since they can be decimal numbers now. I probably need to redo all item weights at this point.\par
-Starting equipment should be affected by race choice.\strike0\par
\strike -I saw some monsters with CRAPLOADS of health (like 700,000 something), so watch out for that. UPDATE: Haven't seen this since, I think it is fixed.\par
-I might want to change it so launchers can only launch certain stuff. UPDATE: This has been dealt with.\par
\lang9 -The level generator should never create a room that cannot be reached.\par
Any item can be thrown, or quivered and fired with a launcher item equipped. However, fired items suffer a heavy damage penalty if they are not among the launcher's ammo types.\par
Maybe you should start losing health each turn instead of immediately dying of thirst in the final stage.\par
Perhaps a creature's weight, which is an indicator of its size, should give a small bonus to carrying capacity.\par
You should gain max hp when drinking a healing potion at full health.\par
Saving/death works pretty much the same as Nethack.\par
In Crawl, corpses decay into skeletons, awesome!\par
Food, if I include it, should rot, go bad, etc. Corpses should break down into bones over time.\par
\lang1033 -Water bottles should wash off dye.\par
-Instead of race determining starting inventory, the creature should be able to select some starting items. UPDATE: For the player, they select starting items. For monsters, race determines starting items.\par
-Make the start screen prettier.\par
-Make an actual list of starting items.\par
-Figure out item values.\par
\lang9 -Ice, snow, frost, etc. should not be material, but instead a "covering". Colors will be determined by looking at both material and covering.\par
\lang1033 -Implement items that cannot be picked up. This will allow the placing of light items in the dungeon that cannot be taken and used by the player. UPDATE: Or, I can just make some rooms start with perma light during level generation. I think I'll just do this.\par
-The in-game message log should record many lines of text, and you should be able to scroll around in them. Any new message should bring the log back to the top.\strike0\par
\strike -Expand the typed command memory to remember many commands.\strike0\par
\strike -Replace density with strength for armor defense formula.\strike0\par
\strike -Density is no longer used for anything. I should probably just throw it out.\par
-When a monster adds its race template starting items, each one should have a random chance of not being added.\par
\lang9 Blood should be a covering. It could come in three varieties: lots, little, and dried. A little blood will eventually dry up and the covering will be removed. A lot of blood will also dry over time, but instead of eventually vanishing, it eventually becomes dried blood, which stays forever unless washed off. All of this means that a tile will need to be able to have multiple coverings at once.\par
Monsters get their starting equipment from their racial template. The items they receive from their template should be randomized.\par
I am considering removing gold as a special case item.\par
\lang1033 -There should be a wait before displaying the death window.\par
-Add a win condition, win window, etc.\par
-There should be runes guaranteed to exist within the game somewhere.\par
-Only one level should be in one memory at a time. UPDATE: Maybe. This might not be needed.\par
-Add some "press spacebar to continue, etc."\par
\lang9 There should be different level types. A level's type is determined when it is first generated. The type is used in generating the level.\par
\pard\sa200\sl276\slmult1 There can be some kind of dye item, that comes in different colors. Dye can be applied to items (and later probably tiles, etc. too).\strike0\par
\pard\sa200\sl240\slmult1\strike I might need to add a tool slot. Either that, or tools can be used when wielded.\par
\pard\sa200\sl276\slmult1 I just want to note somewhere: a game turn is one call to turn(). During this turn, creatures can make multiple moves.\strike0\par
\pard\sa200\sl240\slmult1\strike The difficulty of monsters generated should be dungeon level-dependent, NOT player's experience level-dependent.\par
\lang1033 I need to make ice on walkable tiles affect creature movement (if it is going to do anything). I should also make liquids with an ice covering walkable. UPDATE: Ice does not affect movement.\par
\pard\sa200\sl276\slmult1\lang9 -Add more features to inventory management. (item usage suggestions, etc.)\strike0\par
\pard\sa200\sl240\slmult1\lang1033\strike -Make it so you can see your entire inventory no matter its size.\par
\lang9 A balance note: Equipment should be far more important than just stats.\par
-Make the message string loading work like the template loading. OR: Just cut this out entirely.\lang1033\par
-I am considering removing chance to hit and chance to dodge. Crits can stay. This is partially in preparation for the next game. In that game, crits can be replaced by a system where your damage is affected by where you hit the enemy. This would probably mean cutting the Fighting and Dodging skills out of the game entirely.\strike0\par
\strike -Similarly, since magic is being cut from this game, remove all of the magic skills. Unlike fighting and dodging, however, just disable these, don't cut them out.\strike0\par
\strike -Also, disable the security and stealth skills.\strike0\par
\strike -Also, disable the luck attribute.\strike0\par
\strike -Disable gender.\strike0\par
\strike -Disable mana.\strike0\par
\strike -Disable comprehension and acumen attributes.\par
-Comment out any unused items.\strike0\par
\lang9\strike -I should upgrade the template system again. Weapons and armor can be defined independent of material. Aside from that, they will be identical. Then, the game can randomly determine the material of the weapon or armor when the item is generated. The game will need access to a list of acceptable materials for such items. One other thought on this: I might need to have each item template give a list of acceptable materials for that item type, instead of the game keeping a list for all items. This way, I could have warhammers made only of metals, and bows made only of different kinds of wood, for example.\par
\lang1033 -Handle a vs. an.\par
-Add a maximum stack size, for technical reasons.\par
\lang9 -Dual wielding should give a damage penalty. This is made less and eventually it becomes a bonus instead by your dual wielding skill.\strike0\par
\strike -Make a/an handling into a function.\strike0\par
\strike -Add a natural armor trait to races.\strike0\par
\strike -The three types of damage range bonuses for races should also be able to be penalties.\par
\lang1033 -There should be some oil and water guaranteed or something. UPDATE: When generating items for the level, it should keep track of water and oil generated. When the first has not had a single one generated, it should be heavily weighted towards making one of that item. Then the second.\strike0\par
\strike -Add some more (fun) races.\par
\lang9 -Setup the class name system.\par
-Make sure everything displays nicely with different resolutions.\par
\lang1033 -Add the highscores list.\par
\cf1 -Implement an action taking multiple turns. UPDATE: I may just cut this out entirely.\cf0\strike0\par
\strike -Allow creatures to drop equipped items with one command.\strike0\par
\strike -Expand the equipping/unequipping/item command related messages.\par
-Implement drinking from fountains.\strike0\par
\strike -Handle anything left in the code in comments.\lang9\strike0\par
\strike -Add random character selection stuff to game startup.\strike0\par
\strike -Finish making current races all unique.\strike0\par
\strike -Add race descriptions to race selection screen.\strike0\par
\strike -Add smart startup choice thing.\par
\pard\sa200\sl276\slmult1 The darkness should be more dangerous than simply not allowing the player to see far, though.  Perhaps some enemies can only move in the darkness.  Others could only spawn in the darkness.  Maybe some kind of zergling type creature (small and weak, but lots can spawn) that only spawns in the dark near the player.\strike0\par
\strike I need to add monsters spawning over time. Also, dark-spawning monsters.\strike0\par
\pard\sa200\sl240\slmult1\strike Maybe monsters initially spawned on a level should be determined by the dungeon level, but monsters spawned later on a given level are determined by the player's current experience level.\par
At higher levels, monsters could spawn with their items from their race template. At lower levels, the items would be ignored.\par
Cut fighting and dodging skills out of the code entirely.\par
I think I should add a special new equipment slot for a launcher item. It could work similarly to armor, in that ONLY launcher items can go in it. This way, you could have a launcher item equipped while also dual-wielding or single-wielding decent melee items. Right now, if you want melee and ranged attacks ready, you have to have a melee and launcher item equipped in the hand slots. But, this means that the launcher weapon is figured into melee attacks.\strike0\par
}
 